// pages/mine/mine.js
const defaultAvatarUrl = '/static/images/profile.jpg'
import { getToken } from '../../utils/auth.js'
import store from '../../store/index.js'
import { getInfo } from '../../api/login.js'

Page({
  /**
   * 页面的初始数据
   */
  data: {
    motto: 'Hello World',
    userInfo: {
      avatarUrl: defaultAvatarUrl,
      nickName: '',
    },
    hasUserInfo: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 检查是否已经登录
    this.checkLoginStatus()
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 检查是否已经登录
    this.checkLoginStatus()
    // 每次显示页面时更新用户信息
    this.updateUserInfo()
  },
  
  // 检查登录状态
  checkLoginStatus() {
    const token = getToken()
    if (!token) {
      wx.redirectTo({
        url: '/pages/login/login'
      })
      return
    }
    
    // 验证token有效性
    getInfo().then(res => {
      if (res.code !== 200) {
        // token无效，清除本地存储并跳转到登录页
        store.clear()
        wx.redirectTo({
          url: '/pages/login/login'
        })
      }
    }).catch(error => {
      // 请求失败，清除本地存储并跳转到登录页
      store.clear()
      wx.redirectTo({
        url: '/pages/login/login'
      })
    })
  },
  
  // 更新用户信息
  updateUserInfo() {
    // 从store中获取用户信息
    const storeState = store.state
    if (storeState.name || storeState.avatar) {
      const userInfo = {
        avatarUrl: storeState.avatar || defaultAvatarUrl,
        nickName: storeState.name || ''
      }
      this.setData({
        userInfo: userInfo,
        hasUserInfo: !!(storeState.name)
      })
    }
  },

  // 处理建设中提示
  handleBuilding() {
    wx.showToast({
      title: '功能建设中',
      icon: 'none'
    })
  },
  
  onChooseAvatar(e) {
    const { avatarUrl } = e.detail
    const { nickName } = this.data.userInfo
    this.setData({
      "userInfo.avatarUrl": avatarUrl,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },
  
  onInputChange(e) {
    const nickName = e.detail.value
    const { avatarUrl } = this.data.userInfo
    this.setData({
      "userInfo.nickName": nickName,
      hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl,
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})